﻿package mortal.game.view.signUp.lineOn.data
{
    import mortal.game.resource.*;
    import mortal.game.resource.info.item.*;

    public class LineOnRewardConfig extends Object
    {
        public var rewardInfoArr:Array;
        public var rewardInfoObj:Object;
        private var _rewardNameArr:Array;
        private var _timeArr:Array;
        private var _itemLenBase:int = 8;
        private static var _instance:LineOnRewardConfig;

        public function LineOnRewardConfig()
        {
            this.rewardInfoObj = {};
            this.init();
            return;
        }// end function

        private function init() : void
        {
            var _loc_4:int = 0;
            var _loc_5:String = null;
            var _loc_6:Object = null;
            this._rewardNameArr = [];
            this._timeArr = [];
            var _loc_1:* = LineOnRewardCache.timeArr;
            var _loc_2:int = 0;
            while (_loc_2 < _loc_1.length)
            {
                
                _loc_4 = _loc_1[_loc_2];
                this._rewardNameArr[_loc_2] = "TTodayOnline" + _loc_4 + "MinGiftCode";
                this._timeArr[_loc_2] = _loc_4;
                _loc_2++;
            }
            this.rewardInfoArr = [];
            var _loc_3:int = 0;
            while (_loc_3 < this._rewardNameArr.length)
            {
                
                _loc_5 = this._rewardNameArr[_loc_3];
                _loc_6 = ConstConfig.instance.getObjectByName(_loc_5);
                this.rewardInfoArr.push(_loc_6);
                this.rewardInfoObj[_loc_6.constName] = _loc_6;
                _loc_3++;
            }
            return;
        }// end function

        public function getConstName(param1:int) : String
        {
            return "TTodayOnline" + param1 + "MinGiftCode";
        }// end function

        public function getConstObjByNum(param1:int) : Object
        {
            var _loc_2:* = this.getConstName(param1);
            var _loc_3:* = ConstConfig.instance.getObjectByName(_loc_2);
            return _loc_3;
        }// end function

        public function getInfoKey(param1:String) : int
        {
            var _loc_2:int = -1;
            var _loc_3:* = this._rewardNameArr.indexOf(param1);
            if (_loc_3 != -1)
            {
                _loc_2 = this._timeArr[_loc_3];
            }
            return _loc_2;
        }// end function

        public function getRollRandomItems(param1:Object, param2:int, param3:Boolean = false) : Array
        {
            var _loc_6:ItemGiftBagInfo = null;
            var _loc_7:Array = null;
            var _loc_8:Array = null;
            var _loc_9:int = 0;
            var _loc_10:int = 0;
            var _loc_11:Object = null;
            var _loc_12:int = 0;
            var _loc_13:int = 0;
            var _loc_14:Array = null;
            var _loc_15:int = 0;
            var _loc_16:Array = null;
            var _loc_4:Array = [];
            var _loc_5:* = int(param1.constValue);
            if (_loc_5 != 0)
            {
                _loc_6 = ItemConfig.instance.getConfig(_loc_5) as ItemGiftBagInfo;
                _loc_7 = getItemArrayByStr(_loc_6.itemList1);
                _loc_8 = [1, param2, 1];
                _loc_9 = 0;
                while (_loc_9 < _loc_7.length)
                {
                    
                    _loc_14 = _loc_7[_loc_9];
                    if (param2 == _loc_14[1])
                    {
                        _loc_8 = _loc_14;
                        break;
                    }
                    _loc_9++;
                }
                _loc_10 = this._itemLenBase + Math.random() * 5;
                _loc_10 = _loc_10 >= (_loc_7.length - 1) ? ((_loc_7.length - 1)) : (_loc_10);
                _loc_11 = {itemCode:true};
                if (param3)
                {
                    _loc_10 = 0;
                }
                _loc_12 = 0;
                _loc_13 = 0;
                while (_loc_13 < _loc_10)
                {
                    
                    _loc_15 = Math.random() * _loc_7.length;
                    _loc_16 = _loc_7[_loc_15];
                    if (!_loc_11[_loc_16[1]])
                    {
                        _loc_4.push(_loc_16);
                        _loc_11[_loc_16[1]] = true;
                        _loc_13++;
                    }
                    _loc_12++;
                    if (_loc_12 > 100)
                    {
                        break;
                    }
                }
                _loc_4.push(_loc_8);
            }
            else
            {
                _loc_4 = [1, param2, 1];
            }
            return _loc_4;
        }// end function

        public function getItemNameArrayByCodeArr(param1:Array) : Array
        {
            var _loc_4:Array = null;
            var _loc_5:int = 0;
            var _loc_6:ItemInfo = null;
            var _loc_2:Array = [];
            var _loc_3:int = 0;
            while (_loc_3 < param1.length)
            {
                
                _loc_4 = param1[_loc_3];
                _loc_5 = _loc_4[1];
                _loc_6 = ItemConfig.instance.getConfig(_loc_5) as ItemInfo;
                if (_loc_6)
                {
                    _loc_2.push(_loc_6.name);
                }
                _loc_3++;
            }
            return _loc_2;
        }// end function

        public static function get instance() : LineOnRewardConfig
        {
            if (_instance == null)
            {
                _instance = new LineOnRewardConfig;
            }
            return _instance;
        }// end function

        public static function getItemArrayByStr(param1:String) : Array
        {
            var _loc_5:String = null;
            var _loc_6:Array = null;
            var _loc_2:Array = [];
            var _loc_3:* = param1.split("&");
            var _loc_4:int = 0;
            while (_loc_4 < _loc_3.length)
            {
                
                _loc_5 = _loc_3[_loc_4];
                _loc_6 = _loc_5.split("#");
                _loc_2.push(_loc_6);
                _loc_4++;
            }
            return _loc_2;
        }// end function

    }
}
